package exo5;


import java.util.ArrayList;
import java.util.List;

public class Bibliotheque {
	private String nom;
	private List<Ouvrage> ouvrages;
	private List<Abonne> abonnes;

	public Bibliotheque() {
	       ouvrages = new ArrayList<Ouvrage>();
	       abonnes = new ArrayList<Abonne>();
	}
	        
	        public Bibliotheque(String nom, List<Ouvrage> ouvrage, List<Abonne> abonne){
	                this.nom = nom;
	                this.ouvrages = ouvrage;
	                this.abonnes = abonne;
	        }
	        
	        public boolean addAbonne (Abonne abonne){
	                return abonnes.add(abonne);
	        }
	        
	         public void emprunter (Ouvrage ouvrage, Abonne abonne){
	                 if ( ouvrage.isDisponibilite() && !(ouvrage.isEtatReservation()) ){
	                         ouvrage.setDisponibilite(false);
	                         ouvrage.setEmprunteur(abonne);
	                 }
	                 else{
	                         if ( ! ouvrage.isDisponibilite() ){
	                                 System.err.println("Le livre n'est pas disponibble !\n");
	                         }
	                         if ( ouvrage.isEtatReservation() ){
	                                 System.err.println("Le livre est réservé !\n");
	                         }
	                 }
	         }
	        
	         public void reserver (Ouvrage ouvrage, Abonne abonne){
	                 if ( ! ouvrage.isEtatReservation() ){
	                         ouvrage.setEtatReservation(true);
	                         ouvrage.setEmprunteur(abonne);
	                 }
	                 else{
	                         System.err.println("Le livre est déjà réservé !\n");
	                 }
	         }
	        
	        //Restituer
	         public void restituer (Ouvrage ouvrage){
	                         ouvrage.setDisponibilite(true);
	                         ouvrage.setEmprunteur(null);
	         }
	         
	        @Override
	        public String toString() {
	                StringBuffer etat = new StringBuffer();
	                etat.append(this.nom).append("\nOuvrages\t:\n").append(this.ouvrages)
	                                .append("\nAbonnés\t:\n").append(this.abonnes);
	                return etat.toString();
	        }
	}

}
